package demo.domain;

import com.emc.xcp.persistence.annotation.CustomAttribute;
import com.emc.xcp.persistence.annotation.PersistentAttribute;
import com.emc.xcp.persistence.annotation.PersistentId;
import com.emc.xcp.persistence.annotation.PersistentObject;
import com.emc.xcp.services.core.annotation.Linked;
import com.emc.xcp.services.framework.domain.LinkSource;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.codehaus.jackson.annotate.JsonIgnore;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.annotate.JsonPropertyOrder;


@PersistentObject(type = "demo_vacation_request")
@Linked(template = "/application/demo_vacation_requests")
@JsonPropertyOrder(alphabetic = true)
public class Da_def_complete_approve_vacation_re_approve_vacationDemo_vacation_requestInput {

    @PersistentId
    @PersistentAttribute(name = "r_object_id")
    @Linked
    private String id;

    @CustomAttribute(id = "effectivePermissionsHandler")
    private List<String> effectivePermissions;

    @PersistentAttribute(name = "object_name")
    private String object_name;

    @PersistentAttribute(name = "end_date")
    private Date end_date;

    @PersistentAttribute(name = "replacement_email")
    private String replacement_email;

    @PersistentAttribute(name = "replacement_name")
    private String replacement_name;

    @PersistentAttribute(name = "start_date")
    private Date start_date;

    @PersistentAttribute(name = "status")
    private String status;

    public String getId(){
        return id;
    }

    public void setId(String id){
        this.id = id;
    }

    public List<String> getEffectivePermissions(){
        return effectivePermissions;
    }

    public void setEffectivePermissions(List<String> effectivePermissions){
        this.effectivePermissions = effectivePermissions;
    }

    public String getObject_name(){
        return object_name;
    }

    public void setObject_name(String object_name){
        this.object_name = object_name;
    }

    public Date getEnd_date(){
        return end_date;
    }

    public void setEnd_date(Date end_date){
        this.end_date = end_date;
    }

    public String getReplacement_email(){
        return replacement_email;
    }

    public void setReplacement_email(String replacement_email){
        this.replacement_email = replacement_email;
    }

    public String getReplacement_name(){
        return replacement_name;
    }

    public void setReplacement_name(String replacement_name){
        this.replacement_name = replacement_name;
    }

    public Date getStart_date(){
        return start_date;
    }

    public void setStart_date(Date start_date){
        this.start_date = start_date;
    }

    public String getStatus(){
        return status;
    }

    public void setStatus(String status){
        this.status = status;
    }

    @JsonProperty
    public Map<String, Object> getLinks(){
        return LinkSource.getLinks(this);
    }

    @JsonIgnore
    public void setLinks(Map<String, Object> linkSource){
    }
}